package cn.zqy.demo2.day03.demo03;


import java.util.ArrayList;
import java.util.Collections;

/**
   public static <T> void sort(List<T> list):将集合中元素按照默认规则排序。
 *     注意:
 *          sort(List<T> list)使用前提
 *          被排序的集合里边存储的元素,【必须实现Comparable,重写接口中的方法compareTo】定义排序的规则
 *
 *     Comparable接口的排序规则:
 *         自己(this)-参数:升序
 * */
public class Demo02Sort {
    public static void main(String[] args) {
        // 1.数字排序
        ArrayList<Integer> list1 = new ArrayList<>();
        // 添加元素
        Collections.addAll(list1, 1,7,4,6,9,18,16);
        System.out.println(list1);  // [1, 7, 4, 6, 9, 18, 16]

        // 排序
        Collections.sort(list1);
        System.out.println(list1);  // [1, 4, 6, 7, 9, 16, 18]
        System.out.println("==============");

        // 2.字符串也能排序
        ArrayList<String> list2 = new ArrayList<>();
        Collections.addAll(list2,"c", "d", "z", "e","a");
        System.out.println(list2); // [c, d, z, e, a]
        Collections.sort(list2);
        System.out.println(list2);  //[a, c, d, e, z]

        // 3.自定义对象排序【字符串或者数字排序】
        ArrayList<Person> list3 = new ArrayList<>();
        list3.add(new Person("aaa",30));
        list3.add(new Person("zzz",10));
        list3.add(new Person("bbb",40));
        System.out.println(list3);
        Collections.sort(list3);
        System.out.println(list3);
    }
}
